/*
如果在实例创建之后添加新的属性到实例上，它不会触发视图更新。
    vue
    name:""  
    computed() {}
    watch(){}
    methods:{}
    data(){}
    props(){}
    class绑定 类 数组
    数组调用$set()方法
    v-once
    v-html
    v-for
    v-else
    v-show
    v-on  @
    v-bind :
    v-model  是@input 的语法糖
    v-directvie('指令名'， {bind，inserted,update,componentUated,unbind})
      
    .stop
    .prevent
    .self
    .once
    .number
    .lazy
    .native

    $nextTick 用来知道什么时候dom 更新。
  组件通信
    当子组件需要向父组件通信时，需要用到自定义事件。
    1.子组件用$emit()触发事件。父组件用$on()接收,也可以子在子组件上使用v-on来监听子组件触发的自定义事件。
      比如，我有个子组件，里面有个button 点击 button 触发事件。这个事件可以对当前组件的数据进行修改。然后调用$emit()
      可以第一个参数是个字符串，这个字符串是 自定义一个事件名（既，父子件绑定的事件名，类似于，@click） ,后面的参数是要传递到父
      组件的数据，可以不传也可以传多个。
    2.可以在自定义组件上用v-modle
      唯一区别是，子组件用$emit(),是第一个参数事件名，要用input

      v-model还可以自定义表单输入组件进行双向绑定。子组件inupt 内用v-on绑定 一个data 数据，这个data数据又是父组件用props
      传下来的， 当data 改变时，调用用$emit() 把data 传 回父组件
    3.非父子组件通信，需要new 一个vue 实例 如bus。
    比如，组件a ,用bus.$emit(), 第一个参数依旧是个个事件名字符串。之后的要传递的数据。
    在组件b，用bus.$on() 接收。第一个是事件名，与$miet,对应，第二个是个方法，参数就是a组件传递进来的数据。

    父链
    在组件中用this.$parent 可以直接访问到组件父实例，或组件。父组件也可以用this.￥children 访问他所以子组件。
    self

    插槽slot,作用域插槽  scope="props"  props.msg  msg="sssss"


    vuex    mutations 读作 mju teisiong   谬忒训 commit 读 肯密特
      new Vuex.Store({
        state:{a:10}
        mutations:{increment(){}}  this.$store.commit('increment')  执行mutations
        getters:{ a: (state,getter)=> state.a} 非常和计算机属性相似，   this.$store.getters.a() getter也可以依赖其他getter
        action:{ b(context){context.commit('increment')}  } 在组件内用 $store.dispath('b')
      })
      vue
      vue响应式原理
      
    x
    */
